package cn.iocoder.yudao.module.enterprise.controller.admin.enterpriseCurriculumVitae.vo;

import cn.iocoder.yudao.module.enterprise.controller.admin.studentEducationalExperience.vo.EnterpriseStudentEducationalExperienceRespVO;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 用户简历 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class EnterpriseCurriculumVitaeBaseVO {

    @ApiModelProperty(value = "学生id", required = true)
    @NotNull(message = "学生id不能为空")
    private Long studentId;

    @ApiModelProperty(value = "学生姓名", required = true)
    @NotNull(message = "学生姓名不能为空")
    private String studentName;

    @ApiModelProperty(value = "学生大头照", required = true)
    @NotNull(message = "学生大头照不能为空")
    private String studentPictureUrl;

    @ApiModelProperty(value = "当前身份", required = true)
    @NotNull(message = "当前身份不能为空")
    private String identify;

    @ApiModelProperty(value = "性别", required = true)
    @NotNull(message = "性别不能为空")
    private String sex;

    @ApiModelProperty(value = "简历公开状态")
    @NotNull(message = "简历公开状态不能为空")
    private String publicStatus;

    @ApiModelProperty(value = "政治面貌", required = true)
    @NotNull(message = "政治面貌不能为空")
    private String political;

    @ApiModelProperty(value = "出生日期", required = true)
    @NotNull(message = "出生日期不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date birthday;

    @ApiModelProperty(value = "居住城市", required = true)
    @NotNull(message = "居住城市不能为空")
    private String liveCity;

    @ApiModelProperty(value = "毕业时间", required = true)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date graduateTime;

    @ApiModelProperty(value = "籍贯", required = true)
    @NotNull(message = "籍贯不能为空")
    private String nativePlace;

    @ApiModelProperty(value = "民族", required = true)
    @NotNull(message = "民族不能为空")
    private String clan;

    @ApiModelProperty(value = "手机号码", required = true)
    @NotNull(message = "手机号码不能为空")
    private String phoneNumber;

    @ApiModelProperty(value = "邮箱", required = true)
    @NotNull(message = "邮箱不能为空")
    private String email;

    @ApiModelProperty(value = "大学名称")
    private String universityName;

    @ApiModelProperty(value = "所学专业")
    private String specialty;

    @ApiModelProperty(value = "学历")
    private String education;

    @ApiModelProperty(value = "年级")
    private String grade;

    @ApiModelProperty(value = "是否有学位证书")
    private String diploma;

    @ApiModelProperty(value = "在校开始日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date universityStartDate;


    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 用户id
     */
    @TableId
    private Long id;


    /**
     * 学历
     */
    private int educationLeve;

    /**
     * 在校结束日期
     */
    private Date universityEndDate;
    /**
     * 期望行业(可能多个)
     */
    private String targetIndustry;
    /**
     * 期望城市
     */
    private String targetCity;
    /**
     * 最低薪资
     */
    private Integer lowestSalary;
    /**
     * 最高薪资
     */
    private Integer highestSalary;
    /**
     * 已修课程json
     */
    private String courses;
    /**
     * 工作/实习经历json
     */
    private String workExperience;
    /**
     * 项目经历json
     */
    private String projectExperience;
    /**
     * 语言能力json
     */
    private String languageAbility;
    /**
     * 专业技能json
     */
    private String specialtyAbility;
    /**
     * 证书json
     */
    private String certificates;
    /**
     * 社会实践/活动经历json
     */
    private String practiceExperience;

    private String internshipDesire;

    private List<EnterpriseStudentEducationalExperienceRespVO> educationalExperience;

    @ApiModelProperty(value = "收藏状态:1:收藏,0:取消收藏")
    private Integer collectStatus;
    @ApiModelProperty(value = "最新备注")
    private String remarks;
}
